最近聽了學長姐的職業經驗分享,有一段話讓我受益良多,她提到做資訊類的職業所該具備的知識有以下5個:
1.資料結構(map、list…...最常用)
2.物件導向
3.網路概論
4.演算法
5.工程數學
上述五點,很多都是過去已經學過,但因時間久遠已漸漸淡忘,所以想透過這次的機會複習它們。
首先是關於資料結構堆疊(stack)與佇列(queue)。當時上課老師對於這兩個的說明,我到現在都還牢牢的記著,stack就像一個桶子,越早放進去的資料就會在越底下,要拿取資料就必須從越上面(越新)的資料拿。而queue則像是一個兩頭都通的水管,先放進去的資料,會先從另一邊的出口拿出。
簡單來說,stack就是first in last out,而queue則是first in first out。而stack可運用在走迷宮的遊戲設計,queue在印表機列印報表時,可以適用它作為資料暫存的緩衝區。
以下是queue的說明圖。
queue有一個缺點就是當rear到底時,就結束了,而circular queue改善了此問題,但circular queue本身又有一個缺點就是會浪費一個儲存空間。